Skip to content

Feature/324 325 326 327 infrastructure updates - #377

Merged
james2177 merged 5 commits into
stellar-vortex-protocol:mainfrom
soma-enyi:feature/324-325-326-327-infrastructure-updates
Sep 1, 2026
Merged

Feature/324 325 326 327 infrastructure updates#377
james2177 merged 5 commits into
stellar-vortex-protocol:mainfrom
soma-enyi:feature/324-325-326-327-infrastructure-updates

Conversation

@soma-enyi

Copy link
Copy Markdown
Contributor

Infrastructure Updates: Node Enforcement, Playwright Coverage, Automated Changelog, and Dependabot Policy

🎯 Overview

This PR implements four interconnected infrastructure improvements to enhance development workflow automation, testing consistency, and dependency management across the vortex-frontend project.

📋 Changes Summary

Issue #325: Node Version Enforcement ✅

Problem: Node version defined in .nvmrc and .github/workflows/ci.yml could drift out of sync, causing "works on my machine" bugs.

Solution:

  • Modified CI workflow to read Node version from .nvmrc using node-version-file parameter (single source of truth)
  • Added engines field to package.json specifying Node 20 requirement for local validation
  • Created .husky/post-checkout hook to automatically validate Node version matches .nvmrc on git operations
  • Updated README.md with clear Node version setup instructions for all version managers (nvm, fnm, volta, asdf, etc.)

Impact: Developers receive immediate feedback if they're running the wrong Node version, eliminating environment mismatch bugs before they occur.


Issue #324: Cross-Browser Playwright Coverage ✅

Problem: E2E test suite only ran against Chromium, leaving Firefox and WebKit rendering untested. Since Freighter supports multiple browsers and CSS features are prone to cross-browser issues, this created a significant testing gap.

Solution:

  • Extended playwright.config.ts to include Firefox and WebKit browser projects alongside existing Chromium
  • Updated CI workflow to install all Playwright browser binaries with system dependencies via npx playwright install --with-deps
  • Added test:e2e and test:e2e:ui npm scripts for running end-to-end tests locally
  • Configured artifact upload for Playwright test reports with 30-day retention in CI

Impact: E2E tests now run against all three major rendering engines in CI, catching browser-specific issues before production. Tests run in parallel for all engines, maintaining CI performance.


Issue #326: Automated CHANGELOG Generation ✅

Problem: Repository had Keep a Changelog format and enforced Conventional Commits, but lacked automation to generate changelog entries from commit history. Manual changelog updates are error-prone and often skipped.

Solution:

  • Added conventional-changelog-cli as a dev dependency
  • Created npm run changelog script to generate/update CHANGELOG.md from conventional commits
  • Implemented maintainer-triggered GitHub Actions workflow (.github/workflows/changelog.yml)
  • Workflow creates PR with auto-generated changelog entries organized into standard sections (Added, Fixed, Changed, etc.)
  • Documented changelog workflow and best practices in README.md

Configuration: Uses conventional-changelog with conventionalcommits preset, which automatically parses:

  • feat: → Added
  • fix: → Fixed
  • docs: → Documentation
  • perf: → Performance
  • Other standard commit types

Impact: Maintainers can trigger changelog generation before releases with a single click, eliminating manual entry and ensuring consistency. The workflow reduces release preparation time and prevents changelog inconsistencies.


Issue #327: Dependabot Major Version Update Policy ✅

Problem: Major-version updates for critical dependencies (Next.js, React, Stellar SDK) arrived as individual ungrouped PRs, creating risk for breaking changes in wallet-adjacent code without special handling.

Solution:

  • Extended dependabot.yml to create dedicated major-updates group separate from minor-and-patch group
  • Configured critical packages for prioritized review:
    • @stellar/freighter-api (wallet integration)
    • @stellar/stellar-sdk (blockchain operations)
    • next, react, react-dom (core framework/UI)
  • Added major-updates group for github-actions as well
  • Documented major version update review process in README.md

Review Process (documented):

  1. Run full Playwright test suite: npm run test:e2e
  2. Perform manual smoke tests on swap flow and wallet integration
  3. Check browser console for deprecation warnings
  4. Review release notes for breaking changes affecting wallet operations
  5. Merge only after verification

Impact: Major updates are now grouped, reducing PR noise while ensuring wallet-critical packages receive appropriate scrutiny. Team receives clear guidance on testing requirements before merging major updates.


🧪 Testing

  • CI workflow validated with Node version enforcement
  • Playwright multi-browser configuration tested locally
  • Changelog generation tested against existing commit history
  • Dependabot configuration validated against schema

📚 Documentation Updated

  • README.md — Node version setup, Playwright e2e scripts, changelog workflow, dependabot policy
  • .nvmrc — Single source of truth for Node version
  • .husky/post-checkout — Automatic Node version validation
  • .github/workflows/changelog.yml — Maintainer-triggered changelog generation
  • .github/workflows/ci.yml — Updated for Node version enforcement and multi-browser testing
  • .github/dependabot.yml — Major version update grouping policy
  • package.json — Added test:e2e scripts and conventional-changelog-cli dependency

✨ Benefits

Development Consistency — Node version enforced automatically across team
Cross-Browser Testing — E2E tests run on Chromium, Firefox, and WebKit
Release Automation — Changelog generation triggered with single click
Dependency Safety — Critical package updates receive dedicated review process
Documentation — Clear guidelines for each workflow included in README

📝 Commits

  1. feat(#325): enforce node version via .nvmrc
  2. feat(#324): extend playwright coverage to firefox and webkit
  3. feat(#326): implement automated changelog generation
  4. feat(#327): implement dependabot major version update policy

Closes #324
Closes #325
Closes #326
Closes #327


- Modify CI workflow to read Node version from .nvmrc using node-version-file
- Add engines field to package.json specifying Node 20 requirement
- Create post-checkout husky hook to validate Node version on git operations
- Update README with Node version setup instructions

Fixes stellar-vortex-protocol#325
…fox and webkit

- Add Firefox and WebKit browser projects to playwright.config.ts
- Update CI workflow to install all playwright browser binaries with dependencies
- Add test:e2e and test:e2e:ui npm scripts for running end-to-end tests
- Add artifact upload for playwright test reports
- E2E tests now run against Chromium, Firefox, and WebKit in CI

Fixes stellar-vortex-protocol#324
…ration

- Add conventional-changelog-cli as dev dependency
- Create npm changelog script to generate CHANGELOG.md from conventional commits
- Add GitHub Actions workflow for maintainer-triggered changelog generation
- Workflow creates PR with generated entries from commits since last release
- Document changelog workflow in README.md

The workflow allows maintainers to easily update CHANGELOG.md before releases
by parsing conventional commits and organizing them into standard sections.

Fixes stellar-vortex-protocol#326
… update policy

- Add major-updates group to dependabot.yml for npm packages
- Target critical packages: @stellar/freighter-api, @stellar/stellar-sdk, next, react, react-dom
- Add separate major-updates group for github-actions
- Document major version update review process in README.md
- Outline required testing (full Playwright suite, manual smoke tests, console checks)

Major version PRs are now grouped separately to ensure wallet-adjacent code
receives appropriate scrutiny before merging. Review process includes full
browser testing and release notes review.

Fixes stellar-vortex-protocol#327
@drips-wave

drips-wave Bot commented Aug 31, 2026

Copy link
Copy Markdown

@soma-enyi Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@james2177
james2177 merged commit 3c7e39e into stellar-vortex-protocol:main Sep 1, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants